%修改代码
%组会417

% 定义横轴和纵轴的范围
snr_dB = [0, 5, 10, 15,20,25];
ber_values = [1e-0, 1e-1, 1e-2, 1e-3, 1e-4]; % 用于在指定点绘图的BER值
ber_full_range = logspace(-4, 0, 100); % 用于生成平滑曲线的BER范围（实际绘图时使用snr_dB对应的ber_values）

% 初始化图形
figure;
hold on; % 保持当前图形，以便在同一图上绘制多条曲线

% 绘制六条曲线
semilogy([0, 5, 10, 15,20,25], [0.22222222222222225, 0.4, 0.28, 0.15,0.006,0.0035], 'bo-', 'LineWidth', 2,'MarkerSize', 8, 'DisplayName', 'DQN'); 
semilogy([0, 5, 10, 15,20], [0.35, 0.25, 0.13, 0.03,0.0028], 'g--*', 'LineWidth', 2,'MarkerSize', 8, 'DisplayName', 'MD3QN'); 

semilogy([0, 5, 10, 15,20], [0.33, 0.23, 0.12, 0.03,0.0016], 'cv-', 'LineWidth', 2,'MarkerSize', 8, 'DisplayName', 'FL-DQN'); 
semilogy([0, 5, 10, 15,20], [0.33, 0.23, 0.13, 0.019,0.00045], 'rD-', 'LineWidth', 2,'MarkerSize', 8, 'DisplayName', 'FL-MD3QN'); 
semilogy([0, 5, 10, 15,20], [0.35, 0.25, 0.13, 0.022,0.0011],'ms-', 'LineWidth', 2,'MarkerSize', 8, 'DisplayName', 'FL-DDQN'); 


% 添加图例
legend show;

% 设置标题和标签
xlabel('SNR (dB)');
ylabel('BER');

% 添加网格线
grid on;

set(gca, 'YScale', 'log');
set(gca, 'YTick', [1e-4, 1e-3, 1e-2, 1e-1, 1e-0]);
set(gca, 'YTickLabel', {'$10^{-4}$', '$10^{-3}$', '$10^{-2}$', '$10^{-1}$', '$10^{0}$'}, 'TickLabelInterpreter', 'latex');
set(gca, 'YLim', [1e-4, 1e0]); % 固定纵轴范围

% 显示图像
hold off;